package cn.edu.lingnan.service;

import cn.edu.lingnan.user.pojos.Menu;

import java.util.List;

public interface RoleManageService {

    // 查询教师角色的菜单权限
    List<Menu> getMenusByRoleId(int roleId);

    // 查询所有菜单
    List<Menu> getAllMenus();

    // 添加教师角色的菜单权限（包括父菜单检查）
    void addMenuToRoleWithParentCheck(int roleId, int menuId);

    // 删除教师角色的菜单权限（递归删除子菜单）
    void removeMenuAndChildrenFromRole(int roleId, int menuId);

    // 删除教师角色的菜单权限（递归删除子菜单，带密码验证）
    void removeMenuAndChildrenFromRoleWithPassword(String jwt, int roleId, int menuId, String password);

    // 构建菜单树
    List<Menu> buildMenuTree(List<Menu> menus);
}